// 重写函数
export const createHistoryEvent = <T extends keyof History>(type: T) => {
  const origin = history[type];

  return function (this: any) {
    const res = origin.apply(this, arguments as any);
    // 创建一个自定义事件
    // dispatchEvent 派发事件
    // addEventListener 监听事件
    // removeEventListener 移除事件
    // 其实就是发布订阅模式
    const e = new Event(type);
    window.dispatchEvent(e);

    return res;
  };
};
